<!DOCTYPE html>
<html>

<head>
  <title>FAQ</title>
  <script id="adobe_dtm" src="https://www.redhat.com/dtm.js" type="text/javascript"></script>
  <script src="/assets/javascript/highlight.pack.js" type="text/javascript"></script>
  <META HTTP-EQUIV='Content-Security-Policy' CONTENT="default-src 'none'; script-src 'self' 'unsafe-eval' 'sha256-ANpuoVzuSex6VhqpYgsG25OHWVA1I+F6aGU04LoI+5s=' 'sha256-ipy9P/3rZZW06mTLAR0EnXvxSNcnfSDPLDuh3kzbB1w=' js.bizographics.com https://www.redhat.com assets.adobedtm.com jsonip.com https://ajax.googleapis.com https://www.googletagmanager.com https://www.google-analytics.com https://use.fontawesome.com; style-src 'self' https://fonts.googleapis.com https://use.fontawesome.com; img-src 'self' *; media-src 'self' ; frame-src https://www.googletagmanager.com https://www.youtube.com; frame-ancestors 'none'; base-uri 'none'; object-src 'none'; form-action 'none'; font-src 'self' https://use.fontawesome.com https://fonts.gstatic.com;">
  <META HTTP-EQUIV='X-Frame-Options' CONTENT="DENY">
  <META HTTP-EQUIV='X-XSS-Protection' CONTENT="1; mode=block">
  <META HTTP-EQUIV='X-Content-Type-Options' CONTENT="nosniff">
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="Quarkus: Supersonic Subatomic Java">
  <meta name="twitter:card" content="summary_large_image">
  <meta name="twitter:site" content="@QuarkusIO"> 
  <meta name="twitter:creator" content="@QuarkusIO">
  <meta property="og:url" content="https://quarkus.io/faq/" />
  <meta property="og:title" content="FAQ" />
  <meta property="og:description" content="Quarkus: Supersonic Subatomic Java" />
  <meta property="og:image" content="/assets/images/quarkus_card.png" />
  <link rel="canonical" href="https://quarkus.io/faq/">
  <link rel="shortcut icon" type="image/png" href="/favicon.ico" >
  <link rel="stylesheet" href="https://quarkus.io/guides/stylesheet/config.css" />
  <link rel="stylesheet" href="/assets/css/main.css" />
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous">
  <link rel="alternate" type="application/rss+xml"  href="https://quarkus.io/feed.xml" title="Quarkus">
  <script src="https://quarkus.io/assets/javascript/goan.js" type="text/javascript"></script>
  <script src="https://quarkus.io/assets/javascript/hl.js" type="text/javascript"></script>
</head>

<body class="faq">
  <!-- Google Tag Manager (noscript) -->
  <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NJWS5L"
  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
  <!-- End Google Tag Manager (noscript) -->

  <div class="nav-wrapper">
  <div class="grid-wrapper">
    <div class="width-12-12">
      <input type="checkbox" id="checkbox" />
      <nav id="main-nav" class="main-nav">
  <div class="container">
    <div class="logo-wrapper">
      
        <a href="/"><img src="/assets/images/quarkus_logo_horizontal_rgb_600px_reverse.png" class="project-logo" title="Quarkus"></a>
      
    </div>
    <label class="nav-toggle" for="checkbox">
      <i class="fa fa-bars"></i>
    </label>
    <div id="menu" class="menu">
      <span>
        <a href="/get-started/" class="">Get Started</a>
      </span>
      <span>
        <a href="/guides/" class="">Guides</a>
      </span>
      <span>
        <a href="/community/" class="">Community</a>
      </span>
      <span>
        <a href="/support/" class="">Support</a>
      </span>
      <span>
        <a href="/blog/" class="">Blog</a>
      </span>
      <span>
        <a href="https://code.quarkus.io" class="button-cta secondary white">Start Coding</a>
      </span>
    </div>
  </div>
      </nav>
    </div>
  </div>
</div>

  <div class="content">
    <div class="grid-wrapper gs-header">
  <div class="grid__item width-12-12">
    <h1 class="text-caps">FAQ</h1>
  </div>
</div>
<div class="sect1">
<h2 id="what-is-your-license"><a class="anchor" href="#what-is-your-license"></a>What is your license?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Quarkus is an Open Source project licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License version 2.0</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="where-can-i-get-it"><a class="anchor" href="#where-can-i-get-it"></a>Where can I get it?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Quarkus is published in Maven Central, check out <a href="/extensions">which extensions</a> you need and just import them in your <code>pom.xml</code> to get Quarkus. We recommend you start your Quarkus experience via our <a href="/get-started">Getting Started guides</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="quarkus-is-stable"><a class="anchor" href="#quarkus-is-stable"></a>Quarkus is stable?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Yes, we consider Quarkus stable. Remember 95% of the features Quarkus apps use are provided by the ecosystem like Hibernate ORM, Eclipse Vert.x, Netty, RESTEasy, etc. These libraries are rock solid :)</p>
</div>
<div class="paragraph">
<p>You can go to <a href="https://code.quarkus.io/">code.quarkus.io</a> to see if a particular extension is <em>stable</em> (default) or <em>preview</em>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-a-quarkus-extension"><a class="anchor" href="#what-is-a-quarkus-extension"></a>What is a Quarkus extension?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>One of the main goals of Quarkus is ease of extensibility and to build a vibrant ecosystem.</p>
</div>
<div class="paragraph">
<p>Think of Quarkus extensions as your project dependencies. Extensions configure, boot and integrate a framework or technology into your Quarkus application. They also do all of the heavy lifting of providing the right information to GraalVM for your application to compile natively. This will allow 3rd party projects to easily take advantage of the work we have done to make it easier to target GraalVM.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-are-the-extension-statuses"><a class="anchor" href="#what-are-the-extension-statuses"></a>What are the extension statuses?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Extensions have a various degree of maturity when they enter the Quarkus ecosystem. A status offers the expectations you can rely on.</p>
</div>
<div class="paragraph">
<p><strong>Stable</strong>: backward compatibility and presence in the ecosystem are taken very seriously. An application can safely rely on these extensions. Extensions not marked as preview or experimental (the majority) are stable.</p>
</div>
<div class="paragraph">
<p><strong>Preview</strong>: backward compatibility and presence in the ecosystem is not guaranteed. Specific improvements might require to change configuration or APIs and plans to become <em>stable</em> are under way. Such extensions are in the middle of their maturation process.</p>
</div>
<div class="paragraph">
<p><strong>Experimental</strong>: early feedback is requested to mature the idea. There is no guarantee of stability nor long term presence in the platform until the solution matures. Such extensions are at the beginning of their maturation process.</p>
</div>
<div class="paragraph">
<p>You can find the extension status on <a href="https://code.quarkus.io">code.quarkus.io</a> or in the extension <a href="/guides/">guides</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="can-i-write-an-extension"><a class="anchor" href="#can-i-write-an-extension"></a>Can I write an extension?</h2>
<div class="sectionbody">

</div>
</div>
<div class="sect1">
<h2 id="will-the-quarkus-team-accept-my-extension"><a class="anchor" href="#will-the-quarkus-team-accept-my-extension"></a>Will the Quarkus team accept my extension?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Oh yeah! We had quite a few extensions written outside the Quarkus "initial" team.</p>
</div>
<div class="paragraph">
<p>Quarkus is an open ecosystem and we hope to see all the extensions people need to write their apps. We are working as we speak to allow an extension to be published in separate repos and separate GAVs and thus published in Maven repos independently of Quarkus core. This will greatly simplify the publication process. Expect news soon.</p>
</div>
<div class="paragraph">
<p>The one current restriction is that extensions should work in both OpenJDK and GraalVM native executables. That is the guarantee we give Quarkus users (a cross compilation for their app). We have a maturity model to improve an extension to be fully "Quarked" and benefit from Quarkus, all done in incremental steps. Just hop on our <a href="https://quarkus.io/community/#discussions">mailing list</a> to discuss your ideas and get help. And you can start reading our <a href="https://quarkus.io/guides/writing-extensions">Writing extensions guide</a> as well or more simply get inspiration from the <a href="https://github.com/quarkusio/quarkus/tree/master/extensions">existing ones</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-graalvm"><a class="anchor" href="#what-is-graalvm"></a>What is GraalVM?</h2>
<div class="sectionbody">
<div class="paragraph">
<p><a href="https://www.graalvm.org">GraalVM</a> is a universal virtual machine for running applications written in various different languages, as well as providing the ability to compile JVM bytecode to a native executable (this native executable runs a special virtual machine called SubstrateVM). These native executables start much faster and can use a lot less memory than a traditional JVM, however not every JVM feature is supported, and some are more limited than normal.</p>
</div>
<div class="paragraph">
<p>For example by default reflection in GraalVM will not work, unless a class/member has been explicitly registered for reflection. This is normally achieved by listing every class, method, field and constructor in a JSON file, and passing this as a parameter into the native image build. This obviously gets quite cumbersome for all but the most trivial projects. Quarkus provides a framework that makes it easy to work around these annotations, and programmatically determine what should be registered.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="how-do-you-unify-imperative-and-reactive-programming"><a class="anchor" href="#how-do-you-unify-imperative-and-reactive-programming"></a>How do you unify imperative and reactive programming?</h2>
<div class="sectionbody">
<div class="paragraph">
<p><a href="/vision/continuum">Learn more</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-does-container-first-mean"><a class="anchor" href="#what-does-container-first-mean"></a>What does Container First mean?</h2>
<div class="sectionbody">
<div class="paragraph">
<p><a href="/vision/container-first">Learn more</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-is-your-view-on-standards"><a class="anchor" href="#what-is-your-view-on-standards"></a>What is your view on standards?</h2>
<div class="sectionbody">
<div class="paragraph">
<p><a href="/vision/standards">Learn more</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-are-you-doing-to-improve-developer-joy"><a class="anchor" href="#what-are-you-doing-to-improve-developer-joy"></a>What are you doing to improve developer joy?</h2>
<div class="sectionbody">
<div class="paragraph">
<p><a href="/vision/developer-joy">Learn more</a>.</p>
</div>
</div>
</div>

  </div>

  <div class="content project-footer">
  <div class="footer-section">
    <div class="logo-wrapper">
      <a href="/"><img src="/assets/images/quarkus_logo_horizontal_rgb_reverse.svg" class="project-logo" title="Quarkus"></a>
    </div>
  </div>
  <div class="grid-wrapper">
    <p class="grid__item width-3-12">Quarkus is open. All dependencies of this project are available under the <a href='https://www.apache.org/licenses/LICENSE-2.0' target='_blank'>Apache Software License 2.0</a> or compatible license.<br /><br />This website was built with <a href='https://jekyllrb.com/' target='_blank'>Jekyll</a>, is hosted on <a href='https://pages.github.com/' target='_blank'>Github Pages</a> and is completely open source. If you want to make it better, <a href='https://github.com/quarkusio/quarkusio.github.io' target='_blank'>fork the website</a> and show us what you’ve got.</p>

    
      <div class="width-1-12 project-links">
        <span>Navigation</span>
        <ul class="footer-links width-1-12">
          
            <li><a href="/">Home</a></li>
          
            <li><a href="/guides">Guides</a></li>
          
            <li><a href="/community/#contributing">Contribute</a></li>
          
            <li><a href="/faq">FAQ</a></li>
          
            <li><a href="/get-started">Get Started</a></li>
          
        </ul>
      </div>
    
      <div class="width-1-12 project-links">
        <span>Contribute</span>
        <ul class="footer-links width-1-12">
          
            <li><a href="https://twitter.com/quarkusio">Follow us</a></li>
          
            <li><a href="https://github.com/quarkusio">GitHub</a></li>
          
            <li><a href="/security">Security&nbsp;policy</a></li>
          
        </ul>
      </div>
    
      <div class="width-1-12 project-links">
        <span>Get Help</span>
        <ul class="footer-links width-1-12">
          
            <li><a href="https://groups.google.com/forum/#!forum/quarkus-dev">Forums</a></li>
          
            <li><a href="https://quarkusio.zulipchat.com">Chatroom</a></li>
          
        </ul>
      </div>
    

    
      <div class="width-3-12 more-links">
        <span>Quarkus is made of community projects</span>
        <ul class="footer-links">
          
            <li><a href="https://vertx.io/" target="_blank">Eclipse Vert.x</a></li>
          
            <li><a href="https://microprofile.io" target="_blank">Eclipse MicroProfile</a></li>
          
            <li><a href="https://hibernate.org" target="_blank">Hibernate</a></li>
          
            <li><a href="https://netty.io" target="_blank">Netty</a></li>
          
            <li><a href="https://resteasy.github.io" target="_blank">RESTEasy</a></li>
          
            <li><a href="https://camel.apache.org" target="_blank">Apache Camel</a></li>
          
            <li><a href="https://code.quarkus.io/" target="_blank">And many more...</a></li>
          
        </ul>
      </div>
    
  </div>
</div>
  <div class="content redhat-footer">
  <div class="grid-wrapper">
    <span class="licence">
      <i class="fab fa-creative-commons"></i><i class="fab fa-creative-commons-by"></i> <a href="https://creativecommons.org/licenses/by/3.0/" target="_blank">CC by 3.0</a> | <a href="https://www.redhat.com/en/about/privacy-policy">Privacy Policy</a>
    </span>
    <span class="redhat">
      Sponsored by
    </span>
    <span class="redhat-logo">
      <a href="https://www.redhat.com/" target="_blank"><img src="/assets/images/redhat_reversed.svg"></a>
    </span>
  </div>
</div>


  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js" integrity="sha384-8gBf6Y4YYq7Jx97PIqmTwLPin4hxIzQw5aDmUg/DDhul9fFpbbLcLh3nTIIDJKhx" crossorigin="anonymous"></script>
  <script type="text/javascript" src="/assets/javascript/mobile-nav.js"></script>
  <script type="text/javascript" src="/assets/javascript/scroll-down.js"></script>
  <script src="/assets/javascript/satellite.js" type="text/javascript"></script>
  <script src="https://quarkus.io/guides/javascript/config.js" type="text/javascript"></script>
  <script src="/assets/javascript/search-filter.js" type="text/javascript"></script>
  <script src="/assets/javascript/back-to-top.js" type="text/javascript"></script>
</body>

</html>
